Vantagens e conceitos básicos no uso de modelos lineares mistos em psicolinguística
II Encontro Mineiro de Psicolinguística
Mahayana Godoy
outubro/2020
Por que fazemos análise estatística mesmo?
Alternativas antigas para lidar com medidas repetidas
Implementação e conceitos básicos de MLM
Vantagens no uso de MLMs
Variável prime:
relacionado (leite > CAFÉ)
não-relacionado (pente > CAFÉ)
Itens:
Participantes:
Os dados foram simulados e estão no arquivo priming_EM.csv
Como de difícil já basta a vida, eles estão em distribuição normal
Os códigos para análise estão em codigo_EM.R
Relacionado: 678ms
Prime não-relacionado: 725ms
Será que os valores são diferentes?
O que pode ter contribuído para o tempo de resposta?
Participantes: cada um com sua idiossincrasia
Items: os itens são uma pequena amostra da língua
Nós temos aqui uma estrutura de medidas repetidas por item e por participante
GENERALIZAÇÃO!
20 participantes –> falantes do idioma
60 palavras –> outros itens do idioma
Meu modelo precisa, portanto, incluir efeitos fixos e aleatórios
Estatística F: verificar se a variância associada à manipulação de uma variável (no nosso caso, tipo de prime) é maior que a variância causada por fatores aleatórios não controlados pelo experimentador
Como tem sido usado: dados de cronometria, contagem e de natureza binária
Psicolinguística: frequentemente precisa incluir dois efeitos aleatórios
Vantagem: ANOVA permite inclusão de efeito aleatório!
Problemas: ANOVA permite inclusão de apenas um efeito aleatório!
agrupamento de dados por participante: (\(F_1\))
agrupamento de dados por item: (\(F_2\))
\(\min F' = \frac{F_1F_2}{F_1+F_2}\)
Se \(\min F' < 0.05\), rejeito \(H_0\)
Vinte anos depois:
“Basta fazer duas ANOVAs e reportar os resultados das duas”
(cf. Raaijmakers et al. 1999)
Um exemplo de tabela ANOVA
Fonte: Godoy e Nunes (2020)
Though the F1 analyzes demonstrate a real and significant effect, the F2 analyzes do not reach a level of high significance ( p < 0.05). That hints at a power problem: the analysis over subjects (F1) confirms the hypotheses formulated (…), but the analysis over stimuli (F2) indicates no more than a tendency.
Joosten et al. (2007) Dutch collective nouns and conceptual profiling. Linguistics. 45–1, p. 85–132
Por que “misto”?
No nosso experimento:
fixo: prime
aleatório: item e participante
## item participante prime tempo
## 1 item_01 S_01 relacionado 688.0820
## 2 item_02 S_01 relacionado 694.6091
## 3 item_03 S_01 relacionado 499.6528
## 4 item_04 S_01 relacionado 585.7681
## 5 item_05 S_01 relacionado 480.8825
## 6 item_06 S_01 relacionado 492.4530
Tempo de resposta do prime relacionado será diferente do tempo de resposta do prime não-relacionado
\(\mu_{rel} ≠ \mu_{n.rel}\)
OU
Tempo varia em função de prime
tempo ~ prime
y ~ x
Modelos lineares
Relação entre concretude e imageabilidade para seis palavras do espanhol. Fonte: Godoy e Nunes (em preparação)
O lugar onde ela intercepta o eixo y e a sua inclinação
Intercepto: \(\beta_{0}\)
Slope: \(\beta_{x}\)
O que é o intercepto aqui? E o slope?
Médias
## # A tibble: 2 x 2
## prime media
## <chr> <chr>
## 1 nrelacionado 725.7119
## 2 relacionado 678.2213
Diferença
## [1] 47.4906
função lm(y ~ x, dados)
(e seria a mesma para um x de natureza contínua)
##
## Call:
## lm(formula = tempo ~ prime, data = priming)
##
## Residuals:
## Min 1Q Median 3Q Max
## -392.71 -93.45 2.92 97.98 458.85
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 725.712 8.266 87.791 < 2e-16 ***
## primerelacionado -47.491 11.700 -4.059 5.59e-05 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 142.5 on 591 degrees of freedom
## Multiple R-squared: 0.02712, Adjusted R-squared: 0.02547
## F-statistic: 16.47 on 1 and 591 DF, p-value: 5.593e-05
Como formalizar as relações entre x e y através dos coeficientes de intercepto (\(\beta_{0}\)) e slope (\(\beta_{x}\))?
Qual o valor de y para um determinado valor de x?
Para regressão com uma variável
\(y=\beta_{0}+\beta_{1}x_{1}\)
\(y= 725.712 + (-47.491) * 1\)
Observe como os interceptos variam
Inserindo interceptos aleatórios por participante na fórmula
lm(tempo ~ prime + (1|participante), priming)
Observe como os slopes variam
Inserindo slopes aleatórios por condição de prime para cada participante na fórmula
lm(tempo ~ prime + (1+prime|participante), priming)
Observe como os interceptos variam
Inserindo interceptos aleatórios por item na fórmula
lm(tempo ~ prime + (1+prime|participante) + (1|item), priming)
Observe como os slopes variam
Inserindo slopes aleatórios por condição de prime para cada item na fórmula
lm(tempo ~ prime + (1+prime|participante) + (1+prime|item), priming)
Pacote lme4, função lmer()
## boundary (singular) fit: see ?isSingular
A mensagem de erro indica erro de convergência na estrutura máxima de efeitos aleatórios
Ajustando modelo para lidar com convergência
Estrutura máxima de efeitos aleatórios que nossos dados permitem sem erro de convergência
## Linear mixed model fit by maximum likelihood . t-tests use Satterthwaite's
## method [lmerModLmerTest]
## Formula: tempo ~ prime + (1 + prime | participante) + (1 | item)
## Data: priming
##
## AIC BIC logLik deviance df.resid
## 7352.3 7383.0 -3669.2 7338.3 586
##
## Scaled residuals:
## Min 1Q Median 3Q Max
## -2.70931 -0.68328 0.02032 0.65692 3.12631
##
## Random effects:
## Groups Name Variance Std.Dev. Corr
## item (Intercept) 225.7 15.02
## participante (Intercept) 10873.1 104.27
## primerelacionado 16049.0 126.68 -0.79
## Residual 11571.9 107.57
## Number of obs: 593, groups: item, 60; participante, 20
##
## Fixed effects:
## Estimate Std. Error df t value Pr(>|t|)
## (Intercept) 726.30 24.22 20.14 29.993 <2e-16 ***
## primerelacionado -48.76 29.67 19.76 -1.643 0.116
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Correlation of Fixed Effects:
## (Intr)
## primerelcnd -0.782
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 725.71187 8.266392 87.790646 0.000000e+00
## primerelacionado -47.49058 11.700313 -4.058916 5.593192e-05
## Estimate Std. Error df t value Pr(>|t|)
## (Intercept) 726.29777 24.21580 20.14081 29.992718 3.438179e-18
## primerelacionado -48.76107 29.67441 19.75937 -1.643203 1.161596e-01
Baayen, Davidson e Bates (2008) É preciso reportar os testes e coeficientes do melhor modelo ajustado
Exclusão de fatores que não contribuem significativamente para o modelo
Suponha esse maior modelo:
y ~ A+B
Se análises mostram que B não contribui para modelar y, o melhor modelo é
y ~ A
Modelo 1
Modelo 2
Modelo aninhado a 1 (igual a tudo, exceto pela variável que quero testar)
Função anova(): teste de razão de verossimilhança
## Data: priming
## Models:
## modelolm.nulo: tempo ~ 1 + (1 + prime | participante) + (1 | item)
## modelolm: tempo ~ prime + (1 + prime | participante) + (1 | item)
## npar AIC BIC logLik deviance Chisq Df Pr(>Chisq)
## modelolm.nulo 6 7352.9 7379.2 -3670.4 7340.9
## modelolm 7 7352.3 7383.0 -3669.2 7338.3 2.5317 1 0.1116
RESULTADO: não há efeito de prime sobre tempo
Comparando modelos com mais de uma variável (cf. Godoy 2019)
Construo o modelo com efeitos fixos e aleatórios
Confiro convergência
Faço análise por modelos aninhados até achar o melhor modelo ajustado
Reporto os dados daquele modelo
Teste-t não-pareado: lm(y ~ \(x_{cat}\))
Teste-t pareado: lmer(y ~ \(x_{cat}\) + (1|participante))
Correlação: lm(y ~ \(x_{cont}\))
ANOVA (sem medidas repetidas): lm(y ~ \(x_{cat}\))
Você não precisa ficar pensando em mil testes diferentes a depender da natureza das VPs
modelo <- lm(y ~ cat+cat, dados)
modelo <- lm(y ~ cat+cont, dados)
modelo <- lm(y ~ cont+cont, dados)(mas cuidado ao interpretar os coeficientes!)
Mesma equação para diferentes distribuições de variável preditora
# binomial
modelo <- glm(y ~ x, dados, family = "binomial")
# gamma
modelo <- glm(y ~ x, dados, family = "gamma")
# poisson
modelo <- glm(y ~ x, dados, family = "poisson")(mas cuidado ao interpretar os coeficientes!)
Possibilidade de incluir efeitos aleatórios para dados em outras distribuições, o que é fundamental para a maior parte dos estudos em psicolinguística
Regressão logística (binomial)
glmer(interpretacao ~ aspecto + (1+aspecto|participante) + (1|item), dados, family = “binomial”(link=logit))
Regressão de poisson
glmer(number.obstruents ~ evolution + (1|participant) + (1|item), dados,family=poisson(link=log)))
Regressão de poisson-truncada
glmmTMB(silabas ~ evolution + (1|participante) + (1|item), dados,family=truncated_poisson))
Invista seu tempo no estudo de modelos lineares!
Eles são a base da maioria dos testes estatísticos, e isso lhe dará mais flexibilidade para fazer análises mais sofisticadas no futuro
Se você domina vários métodos, talvez os MLs lhe pareçam redundantes e desnecessários
Avalie se suas pesquisas precisam de modelos mais complexos que valham a pena o investimento pessoal em aprender modelos lineares
Estimule seus alunos a aprenderem modelos lineares desde o início
Foco em modelos lineares de modo geral
Godoy (2019): material introdutório em mahayana.me/mlm
Intro ao R
Básico de ML (intercepto, slope, resíduos)
Intro a MLMs
Interação em MLMs
Contrastes
Diagnóstico
Obrigada!
contato: mahayanag@gmail.com